using System;
using System.Runtime.InteropServices;

namespace Atomic.Libraries.Mathematics
{
	/// <summary>
	/// GNU Scientific Library wrapper (Debian package libgsl0-dev). Even complex valued methods can be used
	/// with <see cref="Complex" /> struct:
	/// http://web.archiveorange.com/archive/v/KPLDAddMjyDWoqNGpyhE
	/// </summary>
	public static partial class Gsl
	{
		/*[DllImport("gsl")]
		public static extern double gsl_sf_bessel_J0(double x);

		[DllImport("gsl")]
		public static extern double gsl_complex_abs(Complex z);

		[DllImport("gsl")]
		public static extern Complex gsl_complex_sin(Complex z);

		public static void Test()
		{
			Console.WriteLine(gsl_sf_bessel_J0(0.0));
			Complex c1 = new Complex(3, 4);
			Console.WriteLine(gsl_complex_abs(c1));
			Console.WriteLine(Complex.Re(c1));
			Complex c2 = gsl_complex_sin(c1);
			Console.WriteLine(Complex.Re(c2));
		}*/
	}
}
